﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MathematicallySafe.HeadCounter.Data;
using MathematicallySafe.HeadCounter.Data.Interfaces;
using StructureMap;

namespace MathematicallySafe.HeadCounter.ViewModels
{
    public class ExportOptionsViewModel : ViewModelBase
    {
        private readonly IOptions _options = ObjectFactory.GetInstance<IOptions>();

        #region Attendance

        public bool ShowShortPeriodAttendance
        {
            get { return _options.ShowShortPeriodAttendance; }
            set
            {
                _options.ShowShortPeriodAttendance = value;
                OnPropertyChanged("ShowShortPeriodAttendance");
            }
        }

        public bool ShowShortPeriodAllAttendance
        {
            get { return _options.ShowShortPeriodAllAttendance; }
            set
            {
                _options.ShowShortPeriodAllAttendance = value;
                OnPropertyChanged("ShowShortPeriodAllAttendance");
            }
        }

        public bool ShowLongPeriodAttendance
        {
            get { return _options.ShowLongPeriodAttendance; }
            set
            {
                _options.ShowLongPeriodAttendance = value;
                OnPropertyChanged("ShowLongPeriodAttendance");
            }
        }

        public bool ShowLongPeriodAllAttendance
        {
            get { return _options.ShowLongPeriodAllAttendance; }
            set
            {
                _options.ShowLongPeriodAllAttendance = value;
                OnPropertyChanged("ShowLongPeriodAllAttendance");
            }
        }

        public bool ShowLifetimeAttendance
        {
            get { return _options.ShowLifetimeAttendance; }
            set
            {
                _options.ShowLifetimeAttendance = value;
                OnPropertyChanged("ShowLifetimeAttendance");
            }
        }

        public bool ShowLifetimeAllAttendance
        {
            get { return _options.ShowLifetimeAllAttendance; }
            set
            {
                _options.ShowLifetimeAllAttendance = value;
                OnPropertyChanged("ShowLifetimeAllAttendance");
            }
        }

        #endregion

        public bool ShowShortPeriodLootCount
        {
            get { return _options.ShowShortPeriodLootCount; }
            set
            {
                _options.ShowShortPeriodLootCount = value;
                OnPropertyChanged("ShowShortPeriodLootCount");
            }
        }

        public bool ShowLongPeriodLootCount
        {
            get { return _options.ShowLongPeriodLootCount; }
            set
            {
                _options.ShowLongPeriodLootCount = value;
                OnPropertyChanged("ShowLongPeriodLootCount");
            }
        }

        public bool ShowLifetimeLootCount
        {
            get { return _options.ShowLifetimeLootCount; }
            set
            {
                _options.ShowLifetimeLootCount = value;
                OnPropertyChanged("ShowLifetimeLootCount");
            }
        }

        public bool ShowShortPeriodLootValue
        {
            get { return _options.ShowShortPeriodLootValue; }
            set
            {
                _options.ShowShortPeriodLootValue = value;
                OnPropertyChanged("ShowShortPeriodLootValue");
            }
        }

        public bool ShowLongPeriodLootValue
        {
            get { return _options.ShowLongPeriodLootValue; }
            set
            {
                _options.ShowLongPeriodLootValue = value;
                OnPropertyChanged("ShowLongPeriodLootValue");
            }
        }

        public bool ShowLifetimeLootValue
        {
            get { return _options.ShowLifetimeLootValue; }
            set
            {
                _options.ShowLifetimeLootValue = value;
                OnPropertyChanged("ShowLifetimeLootValue");
            }
        }

        public bool ShowShortPeriodLootRate
        {
            get { return _options.ShowShortPeriodLootRate; }
            set
            {
                _options.ShowShortPeriodLootRate = value;
                OnPropertyChanged("ShowShortPeriodLootRate");
            }
        }

        public bool ShowLongPeriodLootRate
        {
            get { return _options.ShowLongPeriodLootRate; }
            set
            {
                _options.ShowLongPeriodLootRate = value;
                OnPropertyChanged("ShowLongPeriodLootRate");
            }
        }

        public bool ShowLifetimeLootRate
        {
            get { return _options.ShowLifetimeLootRate; }
            set
            {
                _options.ShowLifetimeLootRate = value;
                OnPropertyChanged("ShowLifetimeLootRate");
            }
        }

        public bool ShowShortPeriodLootWeightedValue
        {
            get { return _options.ShowShortPeriodLootWeightedValue; }
            set
            {
                _options.ShowShortPeriodLootWeightedValue = value;
                OnPropertyChanged("ShowShortPeriodLootWeightedValue");
            }
        }

        public bool ShowLongPeriodLootWeightedValue
        {
            get { return _options.ShowLongPeriodLootWeightedValue; }
            set
            {
                _options.ShowLongPeriodLootWeightedValue = value;
                OnPropertyChanged("ShowLongPeriodLootWeightedValue");
            }
        }

        public bool ShowLifetimeLootWeightedValue
        {
            get { return _options.ShowLifetimeLootWeightedValue; }
            set
            {
                _options.ShowLifetimeLootWeightedValue = value;
                OnPropertyChanged("ShowLifetimeLootWeightedValue");
            }
        }

        public bool ShowShortPeriodWeightedLootRate
        {
            get { return _options.ShowShortPeriodWeightedLootRate; }
            set
            {
                _options.ShowShortPeriodWeightedLootRate = value;
                OnPropertyChanged("ShowShortPeriodWeightedLootRate");
            }
        }

        public bool ShowLongPeriodWeightedLootRate
        {
            get { return _options.ShowLongPeriodWeightedLootRate; }
            set
            {
                _options.ShowLongPeriodWeightedLootRate = value;
                OnPropertyChanged("ShowLongPeriodWeightedLootRate");
            }
        }

        public bool ShowLifetimeWeightedLootRate
        {
            get { return _options.ShowLifetimeWeightedLootRate; }
            set
            {
                _options.ShowLifetimeWeightedLootRate = value;
                OnPropertyChanged("ShowLifetimeWeightedLootRate");
            }
        }

        public bool ShowShortPeriodLootPriority
        {
            get { return _options.ShowShortPeriodLootPriority; }
            set
            {
                _options.ShowShortPeriodLootPriority = value;
                OnPropertyChanged("ShowShortPeriodLootPriority");
            }
        }

        public bool ShowLongPeriodLootPriority
        {
            get { return _options.ShowLongPeriodLootPriority; }
            set
            {
                _options.ShowLongPeriodLootPriority = value;
                OnPropertyChanged("ShowLongPeriodLootPriority");
            }
        }

        public bool ShowLifetimeLootPriority
        {
            get { return _options.ShowLifetimeLootPriority; }
            set
            {
                _options.ShowLifetimeLootPriority = value;
                OnPropertyChanged("ShowLifetimeLootPriority");
            }
        }
    }
}
